/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.svh.Entidad;

import com.svh.Utils.Exporter;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author David, Luis Ballena Mapeo mejorado
 */
@Entity
@Table(name = "subtipo_producto_marca")
public class SubtipoProductoMarca implements Serializable, Exporter{
    
    @Id
    @GeneratedValue
    @Column(name = "idSubTipo")
    private Integer id;
    
    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="idMarca", nullable=false)
    private Marca marca;
    
    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="idProducto", nullable=false)
    private Producto producto;
    
    @Column(name="codigo", nullable=false)
    private String codigo;
    
    @Column(name="precio")
    private Double precio;
    
    @Column(name="Descripcion")
    private String descripcion;
    
    @Column(name = "estado", insertable = false)
    private boolean estado;
    
    @Column(name="idUsuario")
    private int idUsuario;
    
    @Transient
    String nomCompleto;

    public SubtipoProductoMarca() {
        
    }

    @Override
    public String toString() {
        return "SubtipoProductoMarca{" + "id=" + id + ", marca=" + marca + ", producto=" + producto + ", codigo=" + codigo + ", precio=" + precio + ", descripcion=" + descripcion + '}';
    }

    /** GETTERS AND SETTERS **/
    
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Marca getMarca() {
        return marca;
    }

    public void setMarca(Marca marca) {
        this.marca = marca;
    }

    public Producto getProducto() {
        return producto;
    }

    public void setProducto(Producto producto) {
        this.producto = producto;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public Double getPrecio() {
        return precio;
    }

    public void setPrecio(Double precio) {
        this.precio = precio;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public boolean isEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }    

    public int getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(int idUsuario) {
        this.idUsuario = idUsuario;
    }

    public String getNomCompleto() {
        return producto.nombre + " " + marca.nombre + (descripcion != null ? (" "+descripcion) : "");
    }
    
    @Override
    public String[] getDatos() {
        String[] datos = new String[5];
        datos[0]=""+this.codigo;
        datos[1]=""+this.marca.nombre;
        datos[2]=""+this.producto.nombre;
        datos[3]=(this.descripcion != null ? this.descripcion : " - ");
	datos[4]=""+this.precio;
        return datos;
    }
    
    @Override
    public String[] getTitulos() {
        return new String[]{"Codigo","Marca","Producto", "Tipo", "Precio"};
    }  

    
    
}
